This invention relates to an interface device configured to process input/output (I/O) commands, and a computer system including the interface device and having a logical partitioning function.
A protocol chip installed in a Host Bus Adapter (HBA) is commonly implemented with a communication processor configured to offload connection protocols, however the load applied to the HBA is steadily increasing as connection speed increases and virtual technology become more and more popular. Since the processing capacity of the communication processor in the protocol chip suffers the performance bottleneck, a method to control one fiber channel port by using multiple communication processors (e.g., see International Publication WO 2013/001578). The method according to International Publication WO 2013/001578, which includes multiple communication processors at an HBA, controls the frames received via a fiber channel in a parallel manner by multiple protocol control circuits.
However, the method according to International Publication WO 2013/001578 in which a driver for controlling the multiple communication processors operating at a host has a problem in that as the driver disperses the loads of I/O commands among the multiple communication processors arranged at the HBA, the loads are dispersed unevenly (first problem). Because of such uneven dispersion, even with the increased number of the communication processors, the improvement of the transaction performance remains obstructed.
Also, even when the loads of I/O commands are distributed evenly among the multiple communication processors, the I/O characteristic of the I/O commands to a storage apparatus, which is sequential, declines the transaction performance (second problem). Since accesses to the storage are controlled in units of blocks, performances vary depending on the I/O characteristics. What is referred to as I/O characteristics includes whether the access pattern to the storage apparatus is sequential or random.
In a sequential access a block is either read or written continuously, where as in a random access a block is read and/or written in a random manner. Even with the same amount of data being transferred, between a sequential access and a random access the number of requests to the storage to either read or write differs: for example, when the size of a block is 4 [KB] in a total of 40 [KB] of data, the number of read/write request to a disk is 1 with sequential access to the storage apparatus, whereas with random at 4 [KB], the number is 10 times.
It is a common practice to implement an algorithm to streamline the sequential accesses when a sequential read commands and write commands are sent to the storage apparatus, and thus falling apart the sequential quality causes the response performance of the storage apparatus to decline.
Also, there is another problem that when I/O commands having a smaller block size and I/O commands having a larger block size are mixed in an access to the storage apparatus, the transaction performance declines due to the I/O commands having a smaller block size (third problem). An example will be described using a case where a tape apparatus and a disk apparatus are connected via a fiber channel connected with an identical port of the HBA.
The storage controls data transfers in units called blocks. The tape apparatus controls the data transfers using larger blocks (e.g., 8 time to 64 times) with respect to the disk apparatus. Accordingly, when a request to process an I/O command to the tape apparatus and a request to process an I/O command to the disk apparatus are sent to the same communication processor, processing time for the I/O commands of the tape apparatus, which uses larger block size, increases. This will generate a wait time for processing the I/O commands of the disk apparatus, which uses smaller block size, while the both of the apparatuses use the same fiber channel, which subsequently will cause the performance thereof to deteriorate.
With respect to the third problem, a method has been available where a system design to separate the HBA with which the disk apparatus is connected from the HBA with which the tape apparatus is connected is used to ensure a communication band for the tape apparatus in order to prevent the performance bottleneck for the entire system. However, the necessity to introduce the HBA exclusively for the tape apparatus increases the introduction cost.
The third problem is not limited for the circumstance where the tape apparatus and the disk apparatus, each as the device with which connections are made, are mixed with one another, but also depends on the characteristics of the database stored at the storage apparatus. An example will be provided where a business system (OLTP) and an information system (DWH) are both arranged within a storage apparatus and connected with the same port.
OLTP refers to an online transaction processing and is a mechanism where a host and a user terminal connected with one another via a network perform a series of processes, and in general is used for data entry and retrieval transaction processing. The block size used when processing one time I/O command is small (a few kilo bytes), while high speed response performance is expected.
Now, DWH (data warehouse) is a system for analyzing vast amounts of business data, as referred to as big data in recent years, for relevancy of and among items. In DWH, I/O commands use larger block size (several tens of kilo bytes, or more) and throughput performance, rather than response performance, is expected.
As such, since OLTP uses I/O commands of smaller block size while DWH is controlled using I/O commands of larger block size, problems that are similar to the problems that arise when a disk apparatus and a tape apparatus are connected with the same port of the HBA also arise. In other words, when I/O command process for OLTP and those for DWH are requested to the same communication processor, increasing the processing time for DWH using I/O command of the larger block size causes a wait period for OLTP using I/O command of the smaller block size to generate. Accordingly, the response performance expected of OLTP declines.
When viewed from a different perspective, the technology described in International Publication WO 2013/001578 doesn't disclose how the communication processors are to be allocated to the logical partitions (hereinafter referred to as “LPARs”) created on the host.